const {request1,request2} = require("./request/index.js")
const cheerio = require('cheerio')
const path = require('path')
const template = require('art-template')
const nodemailer = require("nodemailer")
const schedule = require('node-schedule')
// 获取从认识到现在的时间，以及今天的时间
function getDays(){
    return new Promise((resolve,reject)=>{
        // 获取现在的时间
        const today = new Date();

        // 创建认识的时间   
        const meet = new Date('2018-10-01');

        // 计算从认识到今天的天数
        const count = Math.ceil((today - meet) / 1000 / 60 / 60 / 24);

        // 格式化今天的日期
        const format = `${today.getFullYear()}-${today.getMonth() +1}-${today.getDate()}`;
        
        // 存到对象
        const dayDate = {
            count,
            format
        }
        resolve(dayDate)
    })
}

// 获取墨迹天气的数据

async function getMojiData(){
  const res = await request1({url:'/guangdong/shenzhen'}).catch(err=>console.log("数据请求失败"))
//  把字符串解析成html，并可用jquery核心选择器获取内容
    const $ = cheerio.load(res.data)
//  获取天气温度数字
    const temperature = $('.wea_weather em').text()
    // 获取天气温度文字
    const weather = $('.wea_weather b').text();
//   获取天气图标
    const icon = $('.wea_weather span img').attr('src');
//     获取提示
    const tips = $('.wea_tips em').text();
    
    const mojiData = {
        icon,
        weather,
        temperature,
        tips
    }
    return mojiData;
}
// 获取 请求One网站的数据
async function getOneData(){
    const res = await request2().catch(err=>console.log("文案请求失败"));
    const $ = cheerio.load(res.data)

    // 抓取网页的图片
    const img = $('.item>img, .carousel-inner>.item>a>img').eq(6).attr('src');

    // 抓取网页的文本
    const text = $('.fp-one .fp-one-cita-wrapper .fp-one-cita').eq(6).text().trim()

    const oneData ={
        img,
        text
    }
    return oneData;
}

// 通过模板引擎替换html代码
async function randerTemplate(){
    const dayData = await getDays();
    const MojiData = await getMojiData();
    const oneData = await getOneData();

    return new Promise((resolve,reject)=>{
        const html = template(path.join(__dirname,"./yl.html"),{
            dayData,
            MojiData,
            oneData
        })
        // console.log(html)
        resolve(html)
    })
}

randerTemplate()


async function sendNodeMail() {
    // const html = await randerTemplate();
    const html = await randerTemplate();
  // 使用默认SMTP传输,创建可重用邮箱对象
  const transporter = nodemailer.createTransport({
    host: "smtp.qq.com",
    // host: "smtp.163.com",
    port: 465,
    secure: true, // 开启加密协议,需要使用465端口号
    auth: {
      user: 'fan-1314520@qq.com', // 生成的用户
      pass: 'uufuetorchepfbah', //密码
    //   pass: 'VYHNGRYOUAUZOKZF', //密码
    },
  });

  const mailOptions ={
    from: '"帅气的范范" <fan-1314520@qq.com>', // 发件人邮箱
    to: "1312316839@qq.com", // 收件人列表
    subject: "爱的邮件", // 标题
    html: html, // 内容
  };

  transporter.sendMail(mailOptions,(err,info)=>{
      if(err){
          console.log("发送失败")
          sendNodeMail(); 
      }
      console.log("成功发送到",info.accepted);
  })
}



                    // 秒、分、时、日、月、周几
schedule.scheduleJob('00 20 17 * * *',function(){
    sendNodeMail();
})
